package com.itheima02.day06;

import java.util.Arrays;

/**
 * @author 刘全
 * @date 2021/7/22
 */
public class KuaiPai {
    public static void main(String[] args) {
        int[] arr = {5, 7, 1, 4, 2, 9};
        quicksolt(0, arr.length-1,arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void quicksolt(int left, int right, int[] arr) {
        if (right<left) {
            return;
        }
        int left0 = left;
        int right0 = right;
        while (left != right) {
            //1，从右开始找比基准数小的
            while (arr[right] >= arr[left0] && right > left) {
                right--;
            }
            //2，从左开始找比基准数大的
            while (arr[left] <= arr[left0] && left < right) {
                left++;
            }
            // 3，交换两个值的位置
            int temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
            //4，红色继续往左找，蓝色继续往右找，直到两个箭头指向同一个索引为止
        }
        //此时循环结束,左边索引等于右边索引
        //基准数归位
        int temp = arr[left0];
        arr[left0] = arr[left];
        arr[left] = temp;
        quicksolt(left0, right - 1, arr);
        quicksolt(right+1, right0, arr);
    }
}
